Claude Code
セキュリティ設定
徹底ガイド

安全なローカル開発環境を守るためのパーミッション管理とサンドボックス設定

Claude Codeのセキュリティモデル

Claude Codeはローカル環境(ファイルシステム、ネットワーク、コマンド実行など)に直接アクセスする強力なエージェントです。安全な利用のためには、「最小特権の原則(Least Privilege)」 に基づいた適切な権限設定が推奨されます。

💡 ファイアウォールとしての settings.json

セキュリティの心臓部となるのが設定ファイルです。このファイルでClaudeの行動範囲(アクセスできるファイル、実行できるコマンド等)を詳細にコントロールします。

settings.json による権限管理

プロジェクトのルートディレクトリに .claude/settings.json を作成するか、グローバルの設定ファイルを編集することで、ツールやアクションのアクセス許可ルールを細かく定義できます。

✅ allow (許可)

確認なしでの実行を許可します。日常的に使用する安全なコマンドやフォルダを設定します。

❓ ask (確認)

実行前にユーザーの承認を求めます。デフォルトの設定です。

🚫 deny (拒否)

Claudeのアクセスを完全にブロックします。denyルールは他のルールより優先されます。 機密情報(例: .env~/.ssh/)の読み取りや、危険なコマンド実行を防ぎます。

// .claude/settings.json の設定例
{
  "permissions": {
    "allow": ["Read(./src/**)", "Run(npm test)"],
    "ask": ["Run(npm install)"],
    "deny": ["Read(./.env)", "Read(~/.ssh/**)", "Run(curl*)"]
  }
}

動作モード(defaultMode)の使い分け

Claudeの自律性のレベルは、設定内の defaultMode でコントロールできます。

normal (デフォルト)

一般的な操作。書き込みやコマンド実行などの影響を及ぼす操作の前に、ユーザーの確認を求めます。

plan

読み取り専用モードです。ファイルの変更やコマンド実行は行わず、実装計画を立てるためだけに動作します。

dontAsk

事前に allow で許可されたアクション以外は、すべて自動的に拒否されます。厳格な制御が必要なプロジェクト向け。

auto

バックグラウンドの安全確認機能に基づき、自動的にアクションを承認します。(※より自律的になりますが、使用時は意図せぬ変更に注意してください)

強固なセキュリティを維持するベストプラクティス

1. サンドボックスの活用 (/sandbox)

/sandbox コマンドを使用することで、ファイルシステムやネットワークに対するBashコマンドのスコープを制限できます。仮に悪意あるコードを読み込んでプロンプトインジェクションが発生しても、サンドボックス外のOSリソース(SSHキーやシステムファイルなど)は守られます。

2. /permissions での権限状況の確認

ClaudeのCLIセッション内で /permissions と入力すると、現在アクティブな権限(allow, denyなど)と、その設定がどのファイルからロードされているかの一覧を確認できます。

3. 常に提案されたコマンドを確認する

Claude Codeはシステムの管理者権限(rootなど)を持った状態で実行 しないでください。また、Claudeが提案するシェルコマンドは、実行前に必ず内容を目視で確認する習慣をつけましょう。

4. セキュリティレビューの実施

機密データや外部に公開する変更をコミットする前に、/security-review や指示を通じて、コードの脆弱性スキャンやレビューをClaude自身に行わせることも有効です。

🛡️ チーム開発への適用

チームでClaude Codeを導入する場合は、組織として Settings.json を安全に構成し、Gitリポジトリ等で共有することで、チーム全体のセキュリティ標準を保つことができます。(一部のエンタープライズ版では「管理された設定機能」を通して上書き不可な強制ルールも適用可能です)